package com.study.zgw.proxy;

import java.lang.reflect.Proxy;

public class Main {
    public static void main(String[] args) {
        Calculator service = getProxyService(Calculator.class);
        int add = service.add(1, 2);
        System.out.println("add:"+add);
        int add1 = service.add(3, 4);
        System.out.println("add1:"+add1);
        int add2 = service.add(6, 7);
        System.out.println("add2:"+add2);
    }


    //创建代理类
    public static <T> T getProxyService(Class<T> serviceClass){
        ClassLoader classLoader = serviceClass.getClassLoader();
        Class<?>[] interfaces = new Class[]{serviceClass};

        Object object = Proxy.newProxyInstance(classLoader,
                                                interfaces,
                                                (proxy, method, args) -> {
                                                    int i = (int)args[0] + (int)args[1];
                                                    return i;
                                                });

        return (T) object;
    }

}
